テーブルの作成
前回の復習
前回は、コマンドを使用してモデルの作成まで行いました。
テーブル
▶︎テーブルとは、データベース内に作成される、データを表形式で格納する場所。データベースには目的に沿ったテーブルが用意される。
追加でレコードとカラムも説明します
▶︎表形式で行をレコード。列をカラムと呼びます。
めっちゃ分かりやすくまとめられていました。⬇️
マイグレーションを元にテーブルを作成
▶︎マイグレーションとは、テーブルの仕様書・設計図のこと。
▶︎テーブルはマイグレーションファイルを元に作られています。目的に沿ったテーブルを作るため、仕様を書いていきます。
前回のrails g modelコマンドで一緒にマイグレーションファイルも作られています。
以下のように編集します。
db/migrate/20XXXXXXXXXX_create_tweets.rb
class CreateTweets < ActiveRecord::Migration[6.0] def change create_table :tweets do |t| t.string :name t.string :text t.text :image t.timestamps end end end
t.に続くのが「型」で、:に続くのが「カラム名」になります。
カラム名の型
カラムの型 | 説明 | 用途 |
---|---|---|
integer | 数値 | 金額、回数など |
string | 文字(短文) | ユーザー名、メールアドレスなど |
text | 文字(長文) | 投稿文、説明文など |
boolean | 真か偽か | はい・いいえの選択、合格・不合格のフラグなど |
datetime | 日付と時刻 | 作成日時、更新日時など |
マイグレーションファイルにデフォルトでt.timestampsとありますが、こちらはcreated_atとupdated_atというカラムを作成してくれます。こちらは、データ登録(更新)の日時を記録してくれます。
マイグレーションの実行
マイグレーションに記述した内容を、データベースに適用します。
これはrails db:migrateコマンドを使用します。
ターミナル
# マイグレーションの実行(tweetsテーブルの作成) % rails db:migrate
以下のような表示が出れば成功です
# 下記のような結果が出力されれば成功です。(数字等は変化します) == 20200306015943 CreateTweets: migrating ===================================== -- create_table(:tweets) -> 0.0148s == 20200306015943 CreateTweets: migrated (0.0149s) ==================
テーブルができたか確認していきます。
Sequel Pro
テーブルの視覚化をしてくれるアプリケーション
もし入れる場合は、こちらを参考にしてみてください
マイグレーションの修正
マイグレーションは、一度実行すると上から更新することができない仕様になっています。そのため、マイグレーションを一度差し戻す必要があります。
修正をするために以下二点のコマンドを追加で覚えます。
rails db:migrate:statusコマンド
▶︎マイグレーションファイルの状況を確認するコマンドです。
ターミナル
# マイグレーションファイルの状況を確認 % rails db:migrate:status
# 以下のような出力が出れば成功
database: first_app_development Status Migration ID Migration Name -------------------------------------------------- up 20190820071210 Create posts
rails db:rollbackコマンド
▶︎マイグレーションの差し戻すためのコマンドです。
ターミナル
# マイグレーションファイルの差し戻し
% rails db:rollback
修正を行う場合は、状況の確認→差し戻し→修正→マイグレート→状況の確認と一段階ずつ行います
まとめ
今回はテーブルの作成、またマイグレーションを中心に行いました。
複雑なプログラムになるとこれとは比べ物にはならないくらいに難しいですが、基本は何より重要です。